package com.hyt.it.ogt.kq.service.model.entity.admission;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hyt.core.annotation.TemplateMapper;
import com.hyt.core.base.BaseEntity;
import com.hyt.it.ogt.kq.common.gov.constant.admission.AdmissionTicketTemplateCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * <p>
 * 准考证考生信息
 * </p>
 *
 * @author zhoumiao
 * @since 2023-01-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("at_examinee_info")
@ApiModel(value = "ExamineeInfo对象", description = "准考证考生信息表")
public class ExamineeInfo extends BaseEntity {

    /**
	 * 
	 */
	private static final long serialVersionUID = 8633380652945634714L;

	/**
     * 准考证任务id
     */
    @ApiModelProperty(value = "准考证任务id")
    private String admissionTicketInfoId;

    /**
     * 考生名称
     */
    @TemplateMapper(templateCode = AdmissionTicketTemplateCode.NAME)
    @ApiModelProperty(value = "考生名称")
    private String examineeName;

    /**
     * 考生性别 0-男 1-女
     */
    @ApiModelProperty(value = "考生性别 0-男 1-女")
    private String examineeSex;

    /**
     * 考生头像
     */
    @TemplateMapper(templateCode = AdmissionTicketTemplateCode.CERTIFICATE_PHOTO)
    @ApiModelProperty(value = "考生头像")
    private String examineePhoto;

    /**
     * 准考证
     */
    @ApiModelProperty(value = "准考证编号")
    private String admissionSerialNumber;

    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型")
    private Integer identificationType;

    /**
     * 证件号码
     */
    @TemplateMapper(templateCode = AdmissionTicketTemplateCode.ID_CARD)
    @ApiModelProperty(value = "证件号码")
    private String identificationNo;

    /**
     * 手机号
     */
    @TemplateMapper(templateCode = AdmissionTicketTemplateCode.PHONE)
    @ApiModelProperty(value = "手机号")
    private String examineePhone;

    /**
     * 准考证生成时间
     */
    @ApiModelProperty(value = "准考证生成时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime generateData;

    /**
     * 生成状态
     */
    @ApiModelProperty(value = "生成状态")
    private Boolean generateStatus;

    /**
     * 准考证查看次数
     */
    @ApiModelProperty(value = "准考证查看次数")
    private Integer ticketViewTimes;

    /**
     * 准考证最后查看时间
     */
    @ApiModelProperty(value = "准考证最后查看时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime lastTicketViewTime;

    /**
     * 准考证下载次数
     */
    @ApiModelProperty(value = "准考证下载次数")
    private Integer ticketDownloadTimes;

    /**
     * 准考证最后下载时间
     */
    @ApiModelProperty(value = "准考证最后下载时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime lastTicketDownloadTime;
}
